1. Field of the Invention
The present invention generally relates to encoder systems capable of digital encoding of large amounts of data at high speed and, more particularly to encoder systems for encoding pictorial image information.
2. Description of the Prior Art
Digital transmission of information is preferred over analog transmission for many applications at the present time and provides numerous advantages such as increased noise immunity, ease of error detection and recovery and the possibility of extreme data compression for facilitating rapid transmission and storage and the like. These advantages often become of significantly increased importance as the volume of data of interest increases. Relatively massive files, databases and other aggregations of data are becoming more common in an increasing variety of applications and the need for high speed encoding, often in combination with data compression, has correspondingly increased.
One such application that presents extreme demands for high speed encoding of a massive volume of data is pictorial communications particularly at high resolution and/or in rapidly presented sequences which provide the illusion of motion. The amount of data in a single image may contain several million image points or “pixels”, each of which must be encoded to represent fine gradations of both color and intensity. To create the illusion of motion simulating actual motion of objects, such images must be presented at a rate above the flicker fusion frequency of human visual perception, generally considered to be about 24 to 30 images per second. Thus it can be seen that even very short sequences of digitized motion picture could require billions of bytes of data to be transmitted and/or stored.
In order to accommodate such massive amounts of information with commercially available and sufficiently inexpensive hardware to be used by persons desiring such information or the general public at large, it is necessary to reduce the volume of data by compression. Several standards for image data compression have been proposed and widely adopted. Among the more well-accepted standards for compression of image data are the JPEG (Joint Photographic Experts Group) standard and the MPEG (Moving Picture Experts Group) standard, both of which are known in several versions at the present time. The JPEG standard allows optimal resolution to be maintained for any arbitrary degree of data compression and compression by a factor of twenty or more often does not result in loss of image quality or fidelity which is generally perceptible. The MPEG standard is similar to the JPEG standard in many aspects but also allows redundancy of portions of the image from frame to frame to be exploited for additional data compression.
It can be readily appreciated that such large degrees of data compression during encoding is complex and requires substantial processing capacity, particularly for motion pictures and especially when high resolution is required as in high-definition television (HDTV) in broadcast applications. To obtain the required data rates from encoder systems of commercially acceptable cost, it is the current practice to use a plurality of commercially available encoders in parallel to process respective portions of an input image. However, while required data rates can be obtained by this expedient, substantial further post-processing overhead and data latency has been necessitated.
Specifically, accepted image data compression standards such as JPEG and MPEG, alluded to above, may yield different amounts of data for images or portions thereof encoded at a given degree of fidelity or resolution (i.e. the converse of the desirable property of maintaining maximum image quality for a given amount of data or degree of compression). Therefore, each encoder must complete processing before the amount of digital data resulting from the encoding process is known so that the individual data streams from the respective encoders can be combined into a single continuous output data stream. That is, the exact number of bits in the encoder data stream for each encoder corresponding to each respective portion of the image must be reported in order to control the high-speed switching necessary to form a continuous data stream from a plurality of data streams output from individual encoders.
In a non-real time system, the individual data streams and individual bit counts are written to files in mass storage such as a hard disk and retrieved for later processing and assembly into a single data stream. However, in a real-time system such as HDTV in broadcast applications, the individual encoder output streams must be “stitched” together on the fly utilizing similar storage in a large rapid access memory such as massive amounts of dynamic or static random access memory. This process also requires significant amounts of processing to properly control read and write operations at the necessary data rates. Latency is also introduced since the encoder system cannot begin to use or process the individual output streams until the encoding operation is complete for a full frame or field, the encoded data stored and the bit counts retrieved. Control of the memory and minimization of the required size thereof is also complicated by the fact that the size of the output stream for an image portion cannot be known or accurately predicted before encoding and storage is completed; introducing the possibility that data for one portion of the image may not be stored at a continuous sequence of addresses to avoid overwriting encoded data for another portion of the image.
Therefore, in addition to other difficulties and complexities of massive encoding and compression, there is a trade-off in design between the cost of memory and the amount of processing overhead and memory control within the capacity for producing necessary data rates. Processing overhead may also be increased and hardware requirements increased by increased data latency which can severely complicate synchronization.